/**
 * Created by YIn on 2017/12/1.
 */

var total_pc = echarts.init(document.getElementById('total_pc'));

total_pc_option = {
    textStyle: {
        color: '#dedec5'
    },
    title: {
        text: '虚机总数及在线数',
        // subtext: '纯属虚构',
        textStyle: '#dedec5'
    },
    tooltip: {
        trigger: 'axis'
    },
    legend: {
        data: ['总机数', '在线数'],
        textStyle: '#dedec5'
    },
    toolbox: {
        show: false,
        feature: {
            dataView: {show: true, readOnly: false},
            magicType: {show: true, type: ['line', 'bar']},
            restore: {show: true},
            saveAsImage: {show: true}
        }
    },
    calculable: true,
    xAxis: [
        {
            type: 'category',
            data: []
        }
    ],
    yAxis: [
        {
            type: 'value'
        }
    ],
    series: [
        {
            name: '总量',
            type: 'bar',
            barWidth: 80,
            data: [0],
            itemStyle: {
                normal: {
                    color: '#9635fa'
                }
            },
            markPoint: {
                data: [
                    {type: 'max', name: '最大值'},
                    {type: 'min', name: '最小值'}
                ]
            },
            markLine: {
                data: [
                    {type: 'average', name: '平均值'}
                ]
            }
        },
        {
            name: '在线',
            type: 'bar',
            barWidth: 80,
            data: [0],
            itemStyle: {
                normal: {
                    color: '#fa0093'
                }
            },
            markPoint: {
                data: [
                    {type: 'max', name: '最大值'},
                    {type: 'min', name: '最小值'}
                ]
            },
            markLine: {
                data: [
                    {type: 'average', name: '平均值'}
                ]
            }
        }
    ]
};

total_pc.setOption(total_pc_option);

// get_vm();

// setInterval(function(){
//     get_vm();
// }, 1000);

// function get_vm() {
//     return $.get('/get_vm/', function (data) {
//         $this = data;
//         var vm_count = [];
//         var off_count = [];
//         vm_count.push($this.vm_count);
//         off_count.push($this.off_count);
//         total_pc_option.series[0].data = vm_count;
//         total_pc_option.series[1].data = off_count;
//         total_pc.setOption(total_pc_option);
//     });
// }





// var ws_get_vm = WebS('/get_vm/');
//
// ws_get_vm.last_health_time = -1; // 上一次心跳时间
// ws_get_vm.keepalive = function () {
//     let time = new Date().getTime();
//     if (ws_get_vm.last_health_time !== -1 && time - ws_get_vm.last_health_time > 20000) { // 不是刚开始连接并且20s
//         ws_get_vm.close()
//     } else {
//         // 如果断网了，ws.send会无法发送消息出去。ws.bufferedAmount不会为0。
//         if (ws_get_vm.bufferedAmount === 0 && ws_get_vm.readyState === 1) {
//             ws_get_vm.send('1');
//             ws_get_vm.last_health_time = time;
//         }
//     }
// };
// if (ws_get_vm) {
//     let reconnect = 0; //重连的时间
//     let reconnectMark = false; //是否重连过
//     ws_get_vm.onopen = () => {
//         console.log('ws连接成功！');
//         reconnect = 0;
//         reconnectMark = false;
//         ws_get_vm.receiveMessageTimer = setTimeout(() => {
//             ws_get_vm.close();
//         }, 30000); // 30s没收到信息，代表服务器出问题了，关闭连接。如果收到消息了，重置该定时器。
//
//         if (ws_get_vm.readyState === 1) { // 为1表示连接处于open状态
//             ws_get_vm.keepAliveTimer = setInterval(() => {
//                 ws_get_vm.keepalive();
//             }, 1000)
//         }
//     };
//     ws_get_vm.onerror = (evt) => {
//         console.error('error: ' + evt)
//     };
//     ws_get_vm.onmessage = (msg) => {
//         // 收到消息，重置定时器
//         clearTimeout(ws_get_vm.receiveMessageTimer);
//         var $this = JSON.parse(msg.data);
//         console.log(msg);
//         if ($this.state === 1) {
//             var vm_count = [];
//             var off_count = [];
//             vm_count.push($this.vm_count);
//             off_count.push($this.off_count);
//             total_pc_option.series[0].data = vm_count;
//             total_pc_option.series[1].data = off_count;
//             total_pc.setOption(total_pc_option);
//         } else {
//             console.log('vm数据未变更！');
//         }
//
//         ws_get_vm.receiveMessageTimer = setTimeout(() => {
//             ws_get_vm.close();
//         }, 30000); // 30s没收到信息，代表服务器出问题了，关闭连接。
//     };
//     ws_get_vm.onclose = () => {
//         console.log('Ws 断开！');
//         clearTimeout(ws_get_vm.receiveMessageTimer);
//         clearInterval(ws_get_vm.keepAliveTimer);
//         if (!reconnectMark) { // 如果没有重连过，进行重连。
//             reconnect = new Date().getTime();
//             reconnectMark = true;
//         }
//         let tempWs = ws_get_vm; // 保存ws对象
//         if (new Date().getTime() - reconnect >= 20000) { // 20秒中重连，连不上就不连了
//             ws_get_vm.close();
//             return false;
//         } else {
//             ws_get_vm = WebS('/get_vm/');
//             ws_get_vm.onopen = tempWs.onopen;
//             ws_get_vm.onmessage = tempWs.onmessage;
//             ws_get_vm.onerror = tempWs.onerror;
//             ws_get_vm.onclose = tempWs.onclose;
//             ws_get_vm.keepalive = tempWs.keepalive;
//             ws_get_vm.last_health_time = -1;
//         }
//     }
// }

// const Rt_vm_Data = () => {
//
// };

const GET_VM = yin_webs('/get_vm/');
GET_VM.onmessage = (msg) => {
    let $this = JSON.parse(msg.data);
    if ($this.state === 1) {
        var vm_count = [];
        var off_count = [];
        vm_count.push($this.vm_count);
        off_count.push($this.off_count);
        total_pc_option.series[0].data = vm_count;
        total_pc_option.series[1].data = off_count;
        total_pc.setOption(total_pc_option);
    } else {
        console.log('vm数据未变更！');
    }
};

//
// ws_get_vm.addEventListener('open', function(){
//     console.log('get_vm 连接成功');
// });
// ws_get_vm.addEventListener('close', function(){
//     console.log('get_vm 连接关闭');
// });
// ws_get_vm.addEventListener('error', function(){
//     console.log('get_vm error');
// });
// ws_get_vm.addEventListener('message', function(evt){
//     var $this = JSON.parse(evt.data);
//     var vm_count = [];
//     var off_count = [];
//     vm_count.push($this.vm_count);
//     off_count.push($this.off_count);
//     total_pc_option.series[0].data = vm_count;
//     total_pc_option.series[1].data = off_count;
//     total_pc.setOption(total_pc_option);
// });


window.addEventListener("resize", function () {
    total_pc.resize();
});